package com.hz.foodstalls.security;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import com.hz.foodstalls.model.Admin;

/**
 * Created by foodstalls on 2016/2/17.
 */
public class ShiroPrincipal implements Serializable {
    private Admin admin;
    // 用户权限列表

    private List<String> authorities = new ArrayList<String>();
    // 用户角色列表

    private List<String> roles = new ArrayList<String>();
    // 是否已授权。如果已授权，则不需要再从数据库中获取权限信息，减少数据库访问

    // 这里会导致修改权限时，需要重新登录方可有效

    private boolean isAuthorized = false;

    /**
     * 
     * 构造函数，参数为Admin对象 根据Admin对象属性，赋值给Principal相应的属性上
     *
     * 
     * 
     * @param admin
     * 
     */
    public ShiroPrincipal(Admin admin) {
        this.admin = admin;
    }

    public List<String> getAuthorities() {
        return authorities;
    }

    public void setAuthorities(List<String> authorities) {
        this.authorities = authorities;
    }

    public List<String> getRoles() {
        return roles;
    }

    public void setRoles(List<String> roles) {
        this.roles = roles;
    }

    public boolean isAuthorized() {
        return isAuthorized;
    }

    public void setAuthorized(boolean isAuthorized) {
        this.isAuthorized = isAuthorized;
    }

    public Admin getAdmin() {
        return admin;
    }

    public void setAdmin(Admin admin) {
        this.admin = admin;
    }

    public String getAdminName() {
        return this.admin.getStr("name");
    }

    public int getId() {
        return this.admin.getId();
    }

    /**
     * 
     * <shiro:principal/>标签显示中文名称
     * 
     */
    @Override
    public String toString() {
        return this.admin.getStr("username");
    }
}
